package com.xiaoma.weblog.example.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.xiaoma.weblog.example.mybatisplus.model.User;
import com.xiaoma.weblog.example.mybatisplus.model.vo.OrderVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName UserMapper
 * @Description:
 * @Author: 小马
 * @CreateDate: 2025/4/2 11:39
 * @Version: 1.0
 */
public interface UserMapper extends MyBaseMapper<User> {
    List<OrderVO> selectOrders();

    IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, @Param(Constants.WRAPPER) QueryWrapper<OrderVO> wrapper);
}

//public interface BaseMapper<T> extends Mapper<T> {
//    // 新增数据
//    int insert(T entity);
//    // 根据 ID 删除
//    int deleteById(Serializable id);
//    // 删除数据
//    int deleteByMap(@Param("cm") Map<String, Object> columnMap);
//    // 删除数据
//    int delete(@Param("ew") Wrapper<T> queryWrapper);
//    // 根据 ID 批量删除数据
//    int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
//    // 根据 ID 更新
//    int updateById(@Param("et") T entity);
//    // 更新数据
//    int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
//    // 根据 ID 查询
//    T selectById(Serializable id);
//    // 根据 ID 批量查询
//    List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
//    // 查询数据
//    List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
//    // 查询一条数据
//    T selectOne(@Param("ew") Wrapper<T> queryWrapper);
//    // 查询记录总数
//    Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);
//    // 查询多条数据
//    List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);
//    // 查询多条数据
//    List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);
//    // 查询多条数据
//    List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);
//    // 分页查询
//    <E extends IPage<T>> E selectPage(E page, @Param("ew") Wrapper<T> queryWrapper);
//    // 分页查询
//    <E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param("ew") Wrapper<T> queryWrapper);
//}
